package cn.iocoder.yudao.module.eval.dal.dataobject.plan;

import cn.iocoder.yudao.framework.tenant.core.db.TenantBaseDO;
import com.baomidou.mybatisplus.annotation.KeySequence;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.*;

import java.time.LocalDate;

/**
 * 评价计划 DO
 *
 * @author 芋道源码
 */
@TableName("eval_plans")
@KeySequence("eval_plans_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库，可不写。
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class EvalPlanDO extends TenantBaseDO {

    /**
     * 主键ID
     */
    @TableId
    private Long id;
    
    /**
     * 计划名称
     */
    private String planName;
    
    /**
     * 计划编码
     */
    private String planCode;
    
    /**
     * 批次名称
     */
    private String batchName;
    
    /**
     * 职业ID，关联eval_professions表
     */
    private Long professionId;
    
    /**
     * 职业名称
     */
    private String professionName;
    
    /**
     * 职业代码
     */
    private String professionCode;
    
    /**
     * 适用等级，逗号分隔
     */
    private String applicableLevels;

    /**
     * 考评员姓名，逗号分隔
     */
    private String kpyrName;

    /**
     * 评价方式：assessment-考核评价，competency-岗位能力评价，combined-考评结合，competition-竞赛认定
     */
    private String evaluationMethod;
    
    /**
     * 报名开始日期
     */
    private LocalDate registrationStartDate;
    
    /**
     * 报名结束日期
     */
    private LocalDate registrationEndDate;
    
    /**
     * 评价开始日期
     */
    private LocalDate evaluationStartDate;
    
    /**
     * 评价结束日期
     */
    private LocalDate evaluationEndDate;
    
    /**
     * 计划状态：0-草稿，1-已提交，2-已审批，3-已发布，4-进行中，5-已完成，6-已取消
     */
    private Integer planStatus;
    
    /**
     * 目标受众：all-全员，department-部门，position-岗位，manual-手动选择
     */
    private String targetAudience;
    
    /**
     * 目标部门ID列表，逗号分隔，关联system_dept表
     */
    private String targetDepartments;
    
    /**
     * 目标岗位ID列表，逗号分隔，关联system_post表
     */
    private String targetPositions;
    
    /**
     * 每个计划最大人数
     */
    private Integer maxPeoplePerPlan;
    
    /**
     * 联系人
     */
    private String contactPerson;
    
    /**
     * 联系电话
     */
    private String contactPhone;
    
    /**
     * 联系邮箱
     */
    private String contactEmail;
    
    /**
     * 计划描述
     */
    private String planDescription;

}
